From 02b1cf005cf3e1df64183d20ba42930eb2767a9f Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Thu, 21 Aug 2025 06:57:36 +0000
Subject: (대표님, 최겸) 설계메뉴추가, 작업사항 업데이트 설계메뉴 - 문서관리
 설계메뉴 - 벤더 데이터 gtc 메뉴 업데이트 정보시스템 - 메뉴리스트 및 정보
 업데이트 파일 라우트 업데이트 엑셀임포트 개선 기본계약 개선 벤더 가입과정
 변경 및 개선 벤더 기본정보 - pq 돌체 오류 수정 및 개선 벤더 로그인 과정
 이메일 오류 수정
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../(engineering)/vendor-data/layout.tsx           | 67 ++++++++++++++++++++++
 1 file changed, 67 insertions(+)
 create mode 100644 app/[lng]/engineering/(engineering)/vendor-data/layout.tsx

(limited to 'app/[lng]/engineering/(engineering)/vendor-data/layout.tsx')

diff --git a/app/[lng]/engineering/(engineering)/vendor-data/layout.tsx b/app/[lng]/engineering/(engineering)/vendor-data/layout.tsx
new file mode 100644
index 00000000..7d00359c
--- /dev/null
+++ b/app/[lng]/engineering/(engineering)/vendor-data/layout.tsx
@@ -0,0 +1,67 @@
+// app/vendor-data/layout.tsx
+import * as React from "react"
+import { cookies } from "next/headers"
+import { Shell } from "@/components/shell"
+import { getVendorProjectsAndContracts } from "@/lib/vendor-data/services"
+import { VendorDataContainer } from "@/components/vendor-data/vendor-data-container"
+import { InformationButton } from "@/components/information/information-button"
+// Layout 컴포넌트는 서버 컴포넌트입니다
+export default async function VendorDataLayout({
+  children,
+}: {
+  children: React.ReactNode
+}) {
+  // evcp: 전체 계약 대상으로 프로젝트 데이터 가져오기
+  const projects = await getVendorProjectsAndContracts()
+
+  // 레이아웃 설정 쿠키 가져오기
+  // Next.js 15에서는 cookies()가 Promise를 반환하므로 await 사용
+  const cookieStore = await cookies()
+  
+  // 이제 cookieStore.get() 메서드 사용 가능
+  const layout = cookieStore.get("react-resizable-panels:layout:mail")
+  const collapsed = cookieStore.get("react-resizable-panels:collapsed")
+  
+  const defaultLayout = layout ? JSON.parse(layout.value) : undefined
+  const defaultCollapsed = collapsed ? JSON.parse(collapsed.value) : undefined
+
+  return (
+    <Shell className="gap-2">
+      <div className="flex items-center justify-between space-y-2">
+        <div className="flex items-center justify-between space-y-2">
+          <div>
+            <div className="flex items-center gap-2">
+              <h2 className="text-2xl font-bold tracking-tight">
+                협력업체 데이터 입력
+              </h2>
+              <InformationButton pagePath="partners/vendor-data" />
+            </div>
+            {/* <p className="text-muted-foreground">
+              각종 Data 입력할 수 있습니다
+            </p> */}
+          </div>
+        </div>
+      </div>
+
+      <section className="overflow-hidden rounded-[0.5rem] border bg-background shadow">
+        <div className="hidden flex-col md:flex">
+          {projects.length === 0 ? (
+            <div className="p-4 text-center text-sm text-muted-foreground">
+              No projects found for this vendor.
+            </div>
+          ) : (
+            <VendorDataContainer
+              projects={projects}
+              defaultLayout={defaultLayout}
+              defaultCollapsed={defaultCollapsed}
+              navCollapsedSize={4}
+            >
+              {/* 페이지별 콘텐츠가 여기에 들어갑니다 */}
+              {children}
+            </VendorDataContainer>
+          )}
+        </div>
+      </section>
+    </Shell>
+  )
+}
\ No newline at end of file
-- 
cgit v1.2.3

